วิธีทำ Eval และวิเคราะห์ข้อผิดพลาดเพื่อปรับปรุง AI Product
Table of Contents
ทุกวันนี้มี developer จำนวนมากออกมาอวดผลงาน AI app กันแบบเบิ้มๆ หรือแม้แต่คนที่ใช้ n8n ก็เห็นได้ทุกวันใน feed หลายคนพูดถึงความเจ๋งของ AI ว่ามันทำอย่างนั้นอย่างนี้ได้ เอามาช่วยงานได้ดีมากๆ แต่ไม่ค่อยเห็นใครออกมาเล่าว่า แล้วเราจะมั่นใจได้ยังไงว่า AI app หรือ chatbot ของเรามันทำงานถูกจริงๆ แบบวัดผลได้เลย
แล้ว YouTube ก็ส่ง video ของคุณ Hamill Hussein ที่ไปให้สัมภาษณ์ในช่อง How I AI เอาไว้เกี่ยวกับการทำ Evals และ Error Analysis กับ AI product ซึ่งผมก็ลองถอดออกมาเป็นขั้นตอนย่อยๆ ได้ประมาณนี้
1. เข้าใจธรรมชาติของ LLM ที่เป็น Non-Deterministic Model #
ก่อนอื่นเลยเราต้องเข้าใจก่อนว่าเรากำลังทำงานกับ non-deterministic model อย่าง LLM เราไม่สามารถมั่นใจ 100% ได้ว่าทุกครั้งที่ user ให้ input เดิม จะได้คำตอบแบบเดิมเสมอไป
ดังนั้นแล้วคุณเลี่ยงไม่ได้ที่จะต้องเข้าไปดูข้อมูลด้วยตัวเอง (looking at data) เพื่อให้มั่นใจว่า product ของเราทำงานได้อย่างมีประสิทธิภาพ เพราะเราต้องรับผิดชอบต่อการทำงานของมัน!
2. ทำความเข้าใจ User Input จริงๆ #
ไม่ใช่แค่จาก test case ของ internal team เพราะโดยปกติแล้วคนที่ทำระบบเอง มักจะรู้อยู่แล้วว่าต้องสื่อสารกับ AI ยังไง ทำให้ชุดความคิดหรือคลังของคำถามอาจจะไม่ตรงกับของจริง (real-world use case)
ดังนั้นแล้วการเข้าไปไล่อ่าน user input จะทำให้เราเข้าใจธรรมชาติของ user มากขึ้น เพื่อเอามาปรับให้ AI ตอบสนองต่อการทำงานจริงๆได้ดี
3. วิเคราะห์ข้อผิดพลาดอย่างเป็นระบบ #
จากการสุ่มตัวอย่าง chat log ขึ้นมาสัก 100 ตัวอย่าง แล้วมานั่งอ่าน ย้ำ!! “อ่าน” ทีละอัน โดยมี step ให้ประมาณนี้:
3.1 จดบันทึกข้อผิดพลาด #
จด note ว่ามีอะไรพลาด แล้วเน้นไปที่ข้อผิดพลาดที่เป็นต้นน้ำ (กระดุมเม็ดแรกที่ผิด)
ตัวอย่าง: แชทควรจะถามผู้ใช้จนเข้าใจปัญหาหรือคำถามจริงๆก่อน อย่ารีบตอบ!
3.2 จัดหมวดหมู่ความผิดพลาด #
การจัดกลุ่มจะช่วยทำให้เราเห็นภาพมากขึ้นว่า AI ของเราทำงานผิดพลาดยังไงบ้าง (นับได้) และสำหรับคนที่ขี้เกียจ ขั้นตอนนี้เราเริ่มใช้ AI มาช่วยจัดกลุ่มหรือสร้าง label ได้แล้วนะเย่!
4. เขียน Evals หรือแบบประเมินผล #
เรารู้ปัญหาแล้ว ทีนี้ก็ได้เวลาออกแบบข้อสอบที่เอาไว้วัดผลว่าน้องๆ AI อยากให้ผ่านด่านไหนบ้าง ซึ่งการวัดผลนี่ก็ทำได้ 2 แบบ:
4.1 Code-Based หรือ Unit Test #
สำหรับกรณีที่คำตอบมันมี pattern ชัดเจนมากๆ ตายตัวมากๆ จนเราเขียน code เพื่อตรวจสอบมันได้
ตัวอย่าง: เช็คว่า AI จะไม่พ่น UUID ในแชท
4.2 แบบใช้ LLM อีกตัวมาช่วย #
ในเมื่อเรารู้คำตอบอยู่ว่าเป็นยังไง เพียงแต่คำตอบมันไม่ได้ตรงไปตรงมา (non-deterministic) เราก็สามารถ prompt ให้ LLM มาช่วยตรวจสอบได้เหมือนกัน
ข้อควรระวัง:
- อย่าบอกให้มันให้คะแนนเป็นตัวเลข เพราะมันไม่ชัดเจนว่าตัวเลขที่ได้มามันต่างกันหรือดีกว่าแค่ไหน เช่น คำตอบนี้ให้ 4.2 คะแนน ถ้าผ่านไปวันหน้าเป็น 4.7 คะแนน มันช่วยให้เราเข้าใจไหมว่า 0.3 ที่เพิ่มขึ้นมามันมาจากอะไร ดียังไง
- สิ่งที่ควรให้ LLM ตัดสินควรเป็นคำตอบตรงๆ เช่น ใช่ / ไม่ใช่ เท่านั้นเลย อันนี้ชัดเจนเป็นข้อๆ ไม่ต้องคิดต่อ
- การตรวจสอบ Validator เราจะเชื่อได้ยังไงว่า validator ของเราทำงานได้ถูกต้อง คำตอบนั้นง่ายมาก ก็เทียบกับที่คนเราตรวจด้วยเหมือนกัน นอกจากใช้ AI ตรวจแล้ว เราเองนี่แหละก็ควรตรวจแล้วสร้างผลลัพธ์มาเทียบกันว่าตัว validator ของเราทำงานได้จริงไหม
4.3 จุดประสงค์ของ Evals #
การทำ Evals ต้องคิดเสมอว่าเรากำลังพัฒนา product ให้ดี ไม่ได้พัฒนาตัวเลขในแบบทดสอบให้ดี ถ้าคะแนนใน Eval ดีแต่คนใช้จริงแล้วห่วย มันไม่มีประโยชน์เลย
5. ปรับปรุง Prompt หรือ Finetune Model #
เพื่อให้ผ่าน Evals ของเรา มีหลายวิธีที่ควรทำตามลำดับความง่าย:
5.1 เริ่มจากปรับแก้ Prompt (System Instructions) ก่อน #
เช่น การตรวจหาคำผิด หรือคำสั่งที่คลุมเครือก่อน เพราะแค่แก้คำไม่กี่คำอาจจะช่วยให้การเรียกเครื่องมือ (tool calling) แม่นยำขึ้นอย่างเห็นได้ชัด
5.2 เพิ่ม Context เข้าไปตรงๆ #
เช่น ถ้า AI ไม่รู้ว่าวันพรุ่งนี้คือวันอะไร ทำไมเราไม่เขียน code ให้ใส่วันที่ปัจจุบันลงไปใน prompt ด้วยเลยล่ะ ง่ายๆ (ไม่จำเป็นต้องเพิ่ม tool)
5.3 Finetune Model เป็นทางเลือกสุดท้าย #
ถ้าปรับแล้วมันไม่ได้สักทีก็ต้อง finetune model แต่ด้วยระบบที่วางมาจะทำให้เรามีข้อมูลไป finetune อยู่แล้ว ไม่ต้องกังวลเลยว่าต้องมานั่งทำอะไรใหม่
สรุป #
การปรับปรุง AI product ยังต้องการมนุษย์ในทุกกระบวนการ ตั้งแต่อ่าน data จริงๆ มองปัญหาจากการใช้งานจริง จัดหมวดหมู่ปัญหา เตรียมเครื่องมือประเมินผลสำหรับการปรับปรุง ไปจนถึงกระบวนการปรับปรุง prompt หรือตัว model
ผมว่ามันอาจจะเร็วไปสำหรับคนที่อยากใช้ AI แบบ full automation ไม่ว่าจะหน้าบ้านหรืองานหลังบ้าน ถ้าตราบใดที่เป้าหมายคือสร้าง product คุณภาพดีให้มนุษย์ใช้งาน ถ้ามนุษย์ไม่อยู่ใน loop การตรวจสอบ แล้วจะเป็นอะไรไปได้ล่ะ
อ้างอิง #
สนใจฟังเต็มๆได้ที่นี่ครับ: How I AI - Interview with Hamill Hussein